package com.jobLink.postings.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.jobLink.common.annotation.Excel;
import com.jobLink.common.core.domain.BaseEntity;

/**
 * 岗位信息对象 job_postings
 * 
 * @author dane
 * @date 2025-03-10
 */
public class JobPostings extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 岗位唯一标识，自增主键 */
    private Long jobId;

    /** 岗位名称 */
    @Excel(name = "岗位名称")
    private String jobName;

    /** 岗位工作地点 */
    @Excel(name = "岗位工作地点")
    private String workLocation;

    /** 岗位招聘人数 */
    private Long recruitmentCount;

    /** 岗位工作内容 */
    @Excel(name = "岗位工作内容")
    private String jobDescription;

    /** 岗位学历要求 */
    @Excel(name = "岗位学历要求")
    private Long educationRequirement;

    /** 岗位经验要求 */
    @Excel(name = "岗位经验要求")
    private Long experienceRequirement;

    /** 岗位预计薪资范围 */
    @Excel(name = "岗位预计薪资范围")
    private String salaryRange;

    /** 岗位标签 */
    @Excel(name = "岗位标签")
    private String jobTags;

    /** 岗位应聘流程 */
    @Excel(name = "岗位应聘流程")
    private String applicationProcess;

    /** 岗位网申开始时间 */
    private Date onlineApplicationStartTime;

    /** 岗位网申结束时间 */
    private Date onlineApplicationEndTime;

    /** 岗位所属发布HR的用户ID */
    private Long hrId;

    /** 岗位所属公司ID */
    @Excel(name = "岗位所属公司ID")
    private Long companyId;

    /** 所在行业 */
    private Long industry;

    public void setJobId(Long jobId) 
    {
        this.jobId = jobId;
    }

    public Long getJobId() 
    {
        return jobId;
    }
    public void setJobName(String jobName) 
    {
        this.jobName = jobName;
    }

    public String getJobName() 
    {
        return jobName;
    }
    public void setWorkLocation(String workLocation) 
    {
        this.workLocation = workLocation;
    }

    public String getWorkLocation() 
    {
        return workLocation;
    }
    public void setRecruitmentCount(Long recruitmentCount) 
    {
        this.recruitmentCount = recruitmentCount;
    }

    public Long getRecruitmentCount() 
    {
        return recruitmentCount;
    }
    public void setJobDescription(String jobDescription) 
    {
        this.jobDescription = jobDescription;
    }

    public String getJobDescription() 
    {
        return jobDescription;
    }
    public void setEducationRequirement(Long educationRequirement) 
    {
        this.educationRequirement = educationRequirement;
    }

    public Long getEducationRequirement() 
    {
        return educationRequirement;
    }
    public void setExperienceRequirement(Long experienceRequirement) 
    {
        this.experienceRequirement = experienceRequirement;
    }

    public Long getExperienceRequirement() 
    {
        return experienceRequirement;
    }
    public void setSalaryRange(String salaryRange) 
    {
        this.salaryRange = salaryRange;
    }

    public String getSalaryRange() 
    {
        return salaryRange;
    }
    public void setJobTags(String jobTags) 
    {
        this.jobTags = jobTags;
    }

    public String getJobTags() 
    {
        return jobTags;
    }
    public void setApplicationProcess(String applicationProcess) 
    {
        this.applicationProcess = applicationProcess;
    }

    public String getApplicationProcess() 
    {
        return applicationProcess;
    }
    public void setOnlineApplicationStartTime(Date onlineApplicationStartTime) 
    {
        this.onlineApplicationStartTime = onlineApplicationStartTime;
    }

    public Date getOnlineApplicationStartTime() 
    {
        return onlineApplicationStartTime;
    }
    public void setOnlineApplicationEndTime(Date onlineApplicationEndTime) 
    {
        this.onlineApplicationEndTime = onlineApplicationEndTime;
    }

    public Date getOnlineApplicationEndTime() 
    {
        return onlineApplicationEndTime;
    }
    public void setHrId(Long hrId) 
    {
        this.hrId = hrId;
    }

    public Long getHrId() 
    {
        return hrId;
    }
    public void setCompanyId(Long companyId) 
    {
        this.companyId = companyId;
    }

    public Long getCompanyId() 
    {
        return companyId;
    }
    public void setIndustry(Long industry) 
    {
        this.industry = industry;
    }

    public Long getIndustry() 
    {
        return industry;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("jobId", getJobId())
            .append("jobName", getJobName())
            .append("workLocation", getWorkLocation())
            .append("recruitmentCount", getRecruitmentCount())
            .append("jobDescription", getJobDescription())
            .append("educationRequirement", getEducationRequirement())
            .append("experienceRequirement", getExperienceRequirement())
            .append("salaryRange", getSalaryRange())
            .append("jobTags", getJobTags())
            .append("applicationProcess", getApplicationProcess())
            .append("onlineApplicationStartTime", getOnlineApplicationStartTime())
            .append("onlineApplicationEndTime", getOnlineApplicationEndTime())
            .append("hrId", getHrId())
            .append("companyId", getCompanyId())
            .append("industry", getIndustry())
            .toString();
    }
}
